<?php

	interface Bike_Auth_Adapter_Mapper_Interface
	{

	    /**
	     * getIdentityColumn() - get the column name to be used as the identity column
	     *
	     * @return string $identityColumn
	     */
	    public function getIdentityColumn();

	    /**
	     * getCredentialColumn() - get the column name to be used as the credential column
	     *
	     * @return  string $credentialColumn
	     */
	    public function getCredentialColumn();

	    /**
	     * getCredentialTreatment() - get a parameterized string that is
	     * used to transform or treat the input credential data.
	     *
	     * In many cases, passwords and other sensitive data are encrypted, hashed, encoded,
	     * obscured, or otherwise treated through some function or algorithm. By specifying a
	     * parameterized treatment string with this method, a developer may apply arbitrary SQL
	     * upon input credential data.
	     *
	     * Examples:
	     *
	     *  'PASSWORD(?)'
	     *  'MD5(?)'
	     *
	     * @return  string $treatment
	     */
	    public function getCredentialTreatment();

	    /**
	     * getAuthenticationSelect() - get the Bike_Db_Mapper_Select for authentication
	     *
	     * @return  Bike_Db_Mapper_Select
	     */
	    public function getAuthenticationSelect();
	}
